import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-11-01
 * Time: 20:29
 */
public class Solution {

    /**
     * 每次分恰好分 5 堆, 多出来一个
     * 那么我们借给它们 4 个, 这样就能保证每次都能正好均分 5 堆
     * 为什么呢 ?
     * 比如第一个猴子 正好分 5 堆, 拿走其中 1 堆
     * 那么 肯定与之前 相比多拿 1 个
     * 但是这一个正好与 给 老猴子的那一个抵消
     * 所以, 剩下的桃 是 之前剩下的桃 + 我们借给它的 4 个
     * 所以下一个猴子正好也能均分 5 堆, 以此类推
     * 这样 第一个猴子拿完剩下的个数为 (x+4)* (4/5)
     * 这样 第一个猴子拿完剩下的个数为 (x+4)* (4/5) * (4/5)
     * 这样 第一个猴子拿完剩下的个数为 (x+4)* (4/5) * (4/5) * (4/5)
     * 最终剩下的就是 (x+4) * ((4/5)^n)
     * 为了保证最终剩下的是一个整数
     * 那么 (x+4) * 4^n 必须是 5 的 n 的倍数
     * 要求最小, 那么就正好是 5^n
     * 但是 4^n 显然不可能是 5^n 的倍数
     * 所以 (x+4) 是 5^n
     * 所以  x = 5 ^ n - 4
     * 最终剩下的就是 (x+4) * ((4/5)^n) == 4 ^ n
     * 那么老猴子得到的就是 4 ^ n + n - 4 (减去我们借给它的 4 个)
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            if (n == 0) {
                break;
            }
            long a = (long)Math.pow(5, n);
            long b = (long)Math.pow(4, n);
            System.out.println(a-4 + " " + (b-4+n));
        }
    }
}
